Skip to content

Рефакторинг backend, оптимизация загрузки файлов и автотесты - #5

Open
DeStep3000 wants to merge 6 commits into
sputnik-llc:mainfrom
DeStep3000:develop
Open

Рефакторинг backend, оптимизация загрузки файлов и автотесты#5
DeStep3000 wants to merge 6 commits into
sputnik-llc:mainfrom
DeStep3000:develop

Conversation

@DeStep3000

Copy link
Copy Markdown

Что сделано

  • Проведен рефакторинг backend без изменения бизнес-логики
  • Backend разделен на слои: настройки, БД, файловое хранилище и бизнес-операции
  • Оптимизирована загрузка файлов: теперь файл записывается чанками, без чтения всего файла в память
  • Добавлен backend/.dockerignore
  • Улучшена Docker-сборка и docker-compose.dev.yml
  • Исправлен проброс порта Postgres и добавлены healthcheck-и
  • Логика frontend частично разбита на слои
  • Добавлены автотесты для backend и frontend
  • Обновлен README с описанием архитектуры, запуска и тестов

Backend

  • Добавлен src/config.py для централизованных настроек
  • Добавлен src/database.py для подключения к БД и session maker
  • Добавлен src/storage.py для работы с файловым хранилищем
  • Обновлен src/service.py, бизнес-операции оставлены отдельно
  • Обновлены Celery-задачи, теперь они используют общие настройки и подключение к БД
  • Добавлены тесты для API, конфигурации и файлового хранилища

Frontend

  • API-запросы вынесены в src/shared/api.ts
  • Форматирование вынесено в src/shared/format.ts
  • Доменные типы вынесены в src/entities
  • Добавлены тесты на shared helpers через Vitest
  • Исправлены сломанные русские строки в интерфейсе

Docker

  • Добавлен .dockerignore для backend
  • Backend Dockerfile переведен на multi-stage build
  • Добавлен cache mount для uv
  • Исправлена ошибка frontend Dockerfile с отсутствующим .env.production
  • В docker-compose.dev.yml добавлены pinned images, healthcheck-и и корректный проброс Postgres 127.0.0.1:5433 -> 5432

Проверка

Backend:

cd backend
uv run pytest

Frontend

cd frontend
npm test
npm run build

@Hspu1

Hspu1 commented Jul 9, 2026

Copy link
Copy Markdown
  • почему не изменил архитектуру и какая выбрана?
  • где жизненный цикл бд и ее менеджер?
  • uuid4 а не uuid7?
  • lru cache для настроек? + нет pydantic settings? + monkeypath?
  • celery для фоновых задач?
  • почему работа с файлами настолько упрощена?
  • Dockerfile внутри .dockerignore?
  • почему python 3.14?
  • почему uvicorn?
  • почему миграции в докерфайле приложения? Где отдельный процесс?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants